很多人煩惱工具或語言的問題,而忽視掉需求分析的部分。
然而python在某些語法上是和javascript有點像似的,應該不需要過於擔心。兩個語言也都是直譯式語言,都支援記憶體自動管理,也可使用eval來執行程式碼。
幾點相似地方我們列一下。
1.物件宣告
#python
class UserModel(db.Model):
id = "9999"
name = "Ivan"
#建構元
def __init__(self, id="9999", name="Ivan"):
self.id = id
self.name = name
def fun(self):
return "Hello world. %r" % self.name
user1 = UserModel()
print(user1.id)
print(user1.name)
#會印出"9999"和"Ivan"
user2 = UserModel(name="Ivan2")
print(user2.id)
print(user2.name)
#會印出"9999"和"Ivan2"
print(user2.fun())
#會印出"Hello world. Ivan2"
//javascript
class UserModel extends React.Component {
id = "9999"
name = "Ivan"
//建構元
constructor(id="9999", name="Ivan") {
this.id = id;
this.name = name;
}
fun = () =>{
return `Hello world. ${this.name}`;
}
}
var user1 = new UserModel()
console.log(user1.id)
console.log(user1.name)
//會印出"9999"和"Ivan"
var user2 = new UserModel("9999", "Ivan2")
console.log(user2.id)
console.log(user2.name)
//會印出"9999"和"Ivan2"
console.log(user2.fun())
//會印出"Hello world. Ivan2"
python的self和javascript的this有一點相像,而javascript自身也有self,但稍微有些微不同,網路上也可以搜尋到很多相關資料。
2.字串處理的方法很類似
分割字串
#python
s = "a,b,c,d"
print(s.split(",", 2))
#["a","b"]
//javascript
var s = "a,b,c,d";
console.log(s.split(",", 2))
//["a","b"]
合併字串
#python
str_list = ['a', 'b', 'c']
print(','.join(str_list))
#"a,b,c,d"
//javascript
var str_array = ['a', 'b', 'c']
console.log(str_array.join(','));
#"a,b,c,d"
3.迭代器
#Python
list = [1, 2, 3, 4, 5]
for i in list:
print(i)
Javascript則有比較多做法
//javascript
array = [1, 2, 3, 4, 5];
for(var i=0;i<array.length;i++){
console.log(array[i]);
}
//javascript
array = [1, 2, 3, 4, 5];
array.forEach((item)=>{
console.log(item);
})
python也有iter()和next()與js的迭代器generator(使用)和next()類似。
還有很多很類似的特性,族繁不及備載。因此對於前端工程師或者原先就使用python的後端/資料工程師來說,要彼此相互轉換是很容易的。
當語言不再是隔閡的時候,我們該思考的是如何讓彼此的心靈相通,這就是再回歸到人性本身,人是比程式還複雜的東西,若不能有相同彼此認知到的共識,即使用的是相同的語言,依然無法合作完成一個好的作品。